#include<iostream>
using namespace std;
const int num = 64;
const int Level = 6;

void divide(char* arr, int min, int max, int level);

int main()
{
	char arr[num + 2];
	arr[0] = arr[num] = '|';
	arr[num + 1] = 0;
	for (int i = 1; i < num; i++)
		arr[i] = ' ';
	for (int i = 0; i <= Level; i++)
	{
		divide(arr, 0, num, i);
		cout << arr << endl;
	}
	return 0;
}

void divide(char* arr, int min, int max, int level)
{
	if (level == 0)
		return;
	int mid = (max + min) / 2;
	arr[mid] = '|';
	divide(arr, min, mid, level - 1);
	divide(arr, mid, max, level - 1);
}
